package kuzmenkov.oip.adapters;

import java.io.File;
import java.util.logging.Logger;

/**
 * Describes an image processing adapter
 * User: Michael Kuzmenkov
 * Date: 26.03.2009
 * Time: 1:35:01
 */
public abstract class ImageProcessingAdapter {
    private Logger log = Logger.getLogger (ImageProcessingAdapter.class.getName());
    /**
     * An id of a current session
     */
    private String sessionId = null;

    public void setSessionId (String sessionId) {
        this.sessionId = sessionId;
    }
    public String getSessionId () {
        return this.sessionId;
    }




    /**
     * Process input parameters. There are such fitnesses:
     * boolean - java.lang.Boolean
     * integer - java.lang.Integer
     * float - java.lang.Float
     * string - java.lang.String
     * image - java.lang.String 
     * selection - java.awt.geom.Rectangle2D
     * polygons - java.util.List<java.awt.geom.Path2D>
     * <p/>
     * Client will only give these types.
     *
     * @param params the input parameters
     * @return the result of the processing
     */
    abstract public Object[] process(Object[] params) throws Exception;
}
